K.

provides("K.lang.Reflect").
run(function(I) {
    var Reflect = K.kin(function(o) {
        throw I.provides + " | Cannot instantiate";
    });
    
    K.merge(Reflect, {
        
        /**
         * Indicates whether a given thing is a string
         * 
         * @param {mixed} o
         * @return {boolean}
         */
        isString : function(o) {
            return typeof o === "string" || o instanceof String; 
        },
        
        /**
         * Indicates whether a given thing is an object
         * 
         * @param {mixed} o
         * @return {boolean}
         */
        isObject : function(o) {
            var t = typeof o;
            return Boolean(o && (t === "object" || t === "function")); 
        }
    });
    
    return Reflect;
    
});